home *** CD-ROM | disk | FTP | other *** search
/ Programming a Multiplayer FPS in DirectX / Programming a Multiplayer FPS in DirectX (Companion CD).iso / DirectX / dxsdk_oct2004.exe / dxsdk.exe / Documentation / DirectX9 / directx9_m.chm / directx / code / lang.js < prev    next >
Encoding:
Text File  |  2004-09-30  |  3.7 KB  |  151 lines

  1. window.onbeforeunload=Window_BeforeUnload;
  2. var gsPersistedLang = null;
  3. var selObj = null;
  4.  
  5. function InitDevLangFilter()
  6. {
  7.  
  8.   var currLang = null;
  9.   if (typeof(obj_cook) != 'undefined' && obj_cook.object)
  10.     currLang = obj_cook.getValue("lang");
  11.   else
  12.     currLang = GetCookie("lang")
  13.  
  14.   gsPersistedLang = currLang;
  15.   if (currLang == null)
  16.     currLang = "(all)";
  17.  
  18.   var supported = false;
  19.   
  20.   // Retrieve the selectLanguage SELECT
  21.   selObj = document.getElementById("selectLanguage");
  22.   if (selObj != null)
  23.     for (i = 0; i < selObj.options.length; i++)
  24.       if (selObj.options(i).value == currLang)
  25.       {
  26.         supported = true;
  27.         break;
  28.       }
  29.  
  30.   if (supported == false)
  31.     currLang = "(all)";
  32.  
  33.   if (selObj != null)
  34.   {
  35.     for (i = 0; i < selObj.options.length; i++)
  36.     {
  37.       if (selObj.options(i).value == currLang)
  38.       {
  39.         selObj.options(i).selected = true;
  40.         break;
  41.       }
  42.     }
  43.   }
  44.   ChangeLanguage2(currLang);
  45. }
  46.  
  47. function Window_BeforeUnload()
  48. {
  49.   if(selObj == null)
  50.     return;
  51.  
  52.   if (typeof(obj_cook) != 'undefined' && obj_cook.object)
  53.     obj_cook.putValue("lang", gsPersistedLang);
  54.   else
  55.   {
  56.     var expiration = new Date(3000, 1, 1);
  57.     DeleteCookie("lang");
  58.     SetCookie("lang", gsPersistedLang, expiration, "/");
  59.   }
  60. }
  61.  
  62. function ChangeLanguage()
  63. {
  64.   var langIndex = selObj.selectedIndex;
  65.   var lang = selObj.options[selObj.selectedIndex].value;
  66.   gsPersistedLang = lang;
  67.   ChangeLanguage2(lang);
  68. }
  69.  
  70. function ChangeLanguage2(lang)
  71. {
  72.   var oRows = document.getElementsByTagName("TR");
  73.   for(j = 0; j < oRows.length; ++j)
  74.   {
  75.     var oRow = oRows[j];
  76.     if(oRow.id.indexOf("_syntax") != -1)
  77.     { 
  78.       {
  79.         if(oRow.id == lang + "_syntax" || lang == "(all)")
  80.           oRow.style.display = "block";
  81.         else
  82.           oRow.style.display = "none";
  83.       }
  84.     }
  85.   }
  86.   
  87.   var oSpans = document.getElementsByTagName("SPAN");
  88.   for (j = 0; j < oSpans.length; ++j)
  89.   {
  90.     var oSpan = oSpans[j];
  91.     var dLang = oSpan.getAttribute("DEVLANG");
  92.     if (dLang != null)
  93.     {
  94.       // Span tag can now contain multiple devlang values separated by a
  95.       // semicolon (ie: <span devlang="cs;xaml">). This update checks to see if
  96.       // the current language matches any of languages specified in the devlang
  97.       // attribute.
  98.       var aLang = dLang.split(';');
  99.       
  100.       for(i = 0; i < aLang.length; i++)
  101.       {
  102.         if (aLang[i] == lang || lang == "(all)")
  103.         {
  104.           oSpan.style.display = "block";
  105.           break;
  106.         }
  107.         else
  108.           oSpan.style.display = "none";
  109.       }
  110.     }
  111.   }
  112. }
  113.  
  114. function SetCookie(name, value, expires, path, domain, secure) 
  115. {
  116.   document.cookie = name + "=" + escape(value) + 
  117.     ((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
  118.     ((path == null)    ? "" : "; path=" + escape(path)) +
  119.     ((domain == null)  ? "" : "; domain=" + escape(domain)) +
  120.     ((secure == null)  ? "" : "; secure");
  121. }
  122.  
  123. function GetCookie(name)
  124.   var cname = name + "=";               
  125.   var dc = document.cookie;             
  126.   
  127.   if (dc.length > 0) 
  128.   {
  129.     begin = dc.indexOf(cname);       
  130.     if (begin != -1) 
  131.     {
  132.       begin += cname.length;       
  133.       end = dc.indexOf(";", begin);
  134.       if (end == -1) end = dc.length;
  135.       return unescape(dc.substring(begin, end));
  136.     } 
  137.   }
  138.   
  139.   return null;
  140. }
  141.  
  142. function DeleteCookie (name,path,domain) 
  143. {
  144.   if (GetCookie(name)) 
  145.   {
  146.     var expires = new Date(1970, 1, 1);
  147.     document.cookie = name + "=" + ((path == null) ? "" : "; path=" + path) + ((domain == null) ? "" : "; domain=" + domain) + "; expires=" + expires.toGMTString();
  148.   }
  149. }
  150.